#pragma once

enum ShaderType
{
	DIFFUSE_SHADER,
	TOON_SHADER,
	TOON2_SHADER,

	MAX_SHADER
};

class ShaderBase;

class ShaderManager
{
public:
	ShaderManager(void);
	~ShaderManager(void);

public:
	void InitShader();

public:
	ShaderBase * GetShader( ShaderType type ) { return m_shaderList[type]; }
	LPD3DXEFFECT GetD3DEffect( std::string fileName );

public:
	ShaderType GetShaderTypeByString( std::string type );

private:
	ShaderBase * m_shaderList[MAX_SHADER];
	std::map<std::string, LPD3DXEFFECT> m_effectList;
};
